モノリスからマイクロサービスへ モノリスを進化させる実践移行ガイド
https://images-na.ssl-images-amazon.com/images/I/51J5zsk3GTL._SX389_BO1,204,203,200_.jpg
2022/4/24
2022/4/28
Sam Newman『モノリスからマイクロサービスへ モノリスを進化させる実践移行ガイド』(島田浩二訳、オライリージャパン)読了。『マイクロサービスアーキテクチャ』の作者だが、流行りすぎを顧みてトーンを抑えるような内容だった。モノリスをレガシーコードに置き換えれば、本書はマイクロサービスへの移行を代表例とするアーキテクチャ改革ガイドとして読める。訳がいまいちだった
本書は、モノリスからマイクロサービスアーキテクチャへと移行するための実践的なガイドです。マイクロサービスが自分たちのシステムに適しているかを判断するところから、ビジネスを維持しながらモノリシックなシステムを少しずつマイクロサービスに切り替えていく方法、さらには、マイクロサービスアーキテクチャが成長するにつれて起こる課題への対処の仕方まで、豊富な例やシナリオを用いて解説します。また、モノリスやデータベースを分解していくのに役立つ様々なパターンやテクニックも扱います。
システムのアーキテクチャ移行について具体的な方法を解説する本書は、エンジニア必携の一冊です。
出版社からのコメント
■本書「訳者あとがき」より
モノリスは敵じゃない
本書は、そのタイトルに反して、モノリスからマイクロサービスへの移行を必ずしも推奨していません。むしろその逆で、モノリスが適切な場合を多く語り、不必要にマイクロサービスへと進まないことを強く促す書籍となっています。
これには、マイクロサービスの流行に身を置いてきた著者の経験が多く反映されているようです。適さない状況でマイクロサービスへと進もうとする企業を、著者は数多く見てきたのでしょう。そして、モノリスがまるで良くないアーキテクチャスタイルであるかのように扱われている状況にも多く接してきたのだと感じます。
本書で、モノリスはレガシーな移行対象としては扱われません。むしろ、モノリスは、最初に選ぶべき選択肢、システムの進化過程における初期~中期の段階に適したアーキテクチャとして扱われています。「まずはモノリシックにシステムを構築する。そこから、システムの成長にあわせてアーキテクチャを進化させていく」これが本書の重要なメッセージになっています。
ビッグバンリライトをしても、保証されるのはビッグバンだけ
本書で次に重要なメッセージは、「アーキテクチャの進化は段階的に行う」ということです。自分たちが間違っていない方向に進んでいることを確認しながら進むため、そして、失敗のリスクを最小にするために、本書ではアーキテクチャを段階的に移行していくことが推奨されています。
「ストラングラーアプリケーション」や「抽象化によるブランチ」をはじめとする、漸進的にアーキテクチャを進化させるためのさまざまなテクニック、パターンは本書の大きな見所でもあります。これらのテクニック、パターンは、決してマイクロサービスへの移行だけに有効なものではありません。アーキテクチャを固定化した不変のものとして扱うのではなく、漸進的な方法で進化させていくという考えだと捉えている限り、どのような場合であっても、本書のテクニックやパターンはあなたの心強い味方となってくれるはずです。
マイクロサービスへの旅
もちろん、マイクロサービスの専門家ならではの知見も、本書には多く散りばめられています。
ドメイン駆動設計を利用したサービスのモデリング方法や、サーガを用いてサービス同士を協調させる方法、サービスの数が増えてくる中で起こってくるさまざまな課題の兆候と対処の仕方。実践の中で培われた筆者の見解は、すでにマイクロサービスの導入に取り組んでいる方でも、学べるところの多い一冊になっていると考えます。
著者について
Sam Newman(サム・ニューマン):開発者、アーキテクト、執筆家、講演者。世界中のさまざまな分野のさまざまな企業と働いてきた経験を持つ。現在は独立し、主にクラウド、継続的デリバリー、マイクロサービスに焦点を当てて働いている。前著にO'Reilly から出版されベストセラーとなった“Building Microservices"(和書『マイクロサービスアーキテクチャ』オライリー・ジャパン)がある。忙しく飛び回っていないときには、東ケントの田舎で、さまざまなスポーツを楽しんでいる。